﻿//-----------------------------------------------------------------------
// <copyright file="IPathSuggestionProvider.cs" author="Artak Mkrtchyan">
//     Creative Commons - GNU General Public License (http://creativecommons.org/licenses/GPL/2.0/
// </copyright>
// <author>Artak Mkrtchyan</author>
// <email>mkArtak@gmail.com</email>
// <date>08/02/2013</date>

using System.Threading.Tasks;

namespace ConsoleHoster.Model.Suggestions
{
	/// <summary>
	/// Represents a contract for path suggestion providers.
	/// </summary>
	public interface IPathSuggestionProvider
	{
		/// <summary>
		/// Gets the list of all possible suggestions with the given base pattern.
		/// </summary>
		/// <param name="argSourceFolder">The root folder to look for suggestions in</param>
		/// <param name="argSuggestionBase">The pattern to match the possible suggestion with</param>
		/// <param name="argFoldersOnly">Determines whether the provided suggestion list should include folder only, or all the items</param>
		/// <returns>An Array of file/folder names (full name with path) from the specified source folder, matching the given suggestion base pattern</returns>
		string[] PrepareSuggestions(string argSourceFolder, string argSuggestionBase, bool argFoldersOnly);

		string GetNextSuggestion();

		string GetPreviousSuggestion();
	}
}
